{% extends 'base_dashboard.html' %} {% load static %} {% block title %}Academy Settings — {{ site_settings.institute_name }}{% endblock %} {% block extra_css %} {% endblock %} {% block content %}
Admin · Configuration

Academy Settings

Brand, theme, currency, payments, and email / SMTP for your academy.

{% if settings_obj.has_logo_light %} Logo {% elif settings_obj.has_logo_dark %} Logo {% else %} No logo uploaded {% endif %}
{% if form.non_field_errors %}
{{ form.non_field_errors }}
{% endif %}
{% csrf_token %}
Institute identity
{{ form.institute_name }}
Shown in navbar, page titles, emails, and student payment screens.
{% if form.institute_name.errors %}
{{ form.institute_name.errors.0 }}
{% endif %}
{{ form.tagline }} {% if form.tagline.errors %}
{{ form.tagline.errors.0 }}
{% endif %}
{{ form.logo }}
White / light artwork for dark backgrounds (navbar, login brand panel). Clear the checkbox to remove it.
{% if form.logo.errors %}
{{ form.logo.errors.0 }}
{% endif %} {% if settings_obj.has_logo_light %}
Light logo
{% else %}
No light logo — dark panel shows institute name.
{% endif %}
{{ form.logo_dark }}
Dark / colored artwork for light backgrounds (login form side). Clear the checkbox to remove it.
{% if form.logo_dark.errors %}
{{ form.logo_dark.errors.0 }}
{% endif %} {% if settings_obj.has_logo_dark %}
Dark logo
{% else %}
No dark logo — light panels fall back to light logo or name.
{% endif %}
{{ form.favicon }}
Small square icon for browser tabs.
{% if form.favicon.errors %}
{{ form.favicon.errors.0 }}
{% endif %}
Certificate verification & signing

The verify URL is printed on every hard and soft certificate as Verify At. Students download a soft copy; only admin/staff can print the official hard copy.

{{ form.certificate_verify_url }}
Example: https://yourdomain.com/certifications/verify/. Leave blank to use this site’s built-in verification page.
{% if form.certificate_verify_url.errors %}
{{ form.certificate_verify_url.errors.0 }}
{% endif %}
{{ form.certificate_signer_name }} {% if form.certificate_signer_name.errors %}
{{ form.certificate_signer_name.errors.0 }}
{% endif %}
{{ form.certificate_signer_title }} {% if form.certificate_signer_title.errors %}
{{ form.certificate_signer_title.errors.0 }}
{% endif %}
{{ form.certificate_signature }}
Director signature shown on certificates. Replace anytime.
{% if form.certificate_signature.errors %}
{{ form.certificate_signature.errors.0 }}
{% endif %} {% if settings_obj.has_certificate_signature %}
Signature
{% endif %}
{{ form.certificate_seal }}
Golden seal (or other seal) shown at the bottom center. Replace anytime.
{% if form.certificate_seal.errors %}
{{ form.certificate_seal.errors.0 }}
{% endif %} {% if settings_obj.has_certificate_seal %}
Seal
{% endif %}
Color scheme

Choose a preset or pick custom colors. Changes apply site-wide after saving.

{{ form.theme_preset }}
Presets fill the colors below automatically. Select Custom colors to fine-tune.
{{ form.theme_primary }}
Buttons & links
{{ form.theme_secondary }}
Navbar / footer
{{ form.theme_accent }}
Highlights / CTAs
{{ form.theme_success }}
Approved / success
Live preview
Primary button Accent Success
Navbar sample
Currency display
{{ form.currency_code }}
Also used for Stripe Checkout (must match your Stripe account currency support).
{% if form.currency_code.errors %}
{{ form.currency_code.errors.0 }}
{% endif %}
{{ form.currency_symbol }}
How prices appear on course cards (e.g. PKR, $, €).
{% if form.currency_symbol.errors %}
{{ form.currency_symbol.errors.0 }}
{% endif %}
Course prices are set per course. Changing currency only changes the label — update course prices if you switch from PKR to USD.
How students activate courses

Enable one or both. Free courses (price 0) activate automatically.

Manual payment
Student pays via bank/Easypaisa and uploads proof. You approve to activate.
{{ form.enable_manual_payment }}
Stripe
Online card payment. Course activates automatically after successful checkout.
{{ form.enable_stripe_payment }}
{{ form.manual_payment_instructions }}
Shown on the student payment page (account numbers, bank name, etc.).
{% if form.manual_payment_instructions.errors %}
{{ form.manual_payment_instructions.errors.0 }}
{% endif %}
Stripe API keys
{{ form.stripe_publishable_key }} {% if form.stripe_publishable_key.errors %}
{{ form.stripe_publishable_key.errors.0 }}
{% endif %}
{{ form.stripe_secret_key }} {% if form.stripe_secret_key.errors %}
{{ form.stripe_secret_key.errors.0 }}
{% endif %}
{{ form.stripe_webhook_secret }}
Optional locally; recommended in production.
{% if form.stripe_webhook_secret.errors %}
{{ form.stripe_webhook_secret.errors.0 }}
{% endif %}
{{ webhook_url }}
Add this URL in Stripe Dashboard → Developers → Webhooks for event checkout.session.completed.
SMTP delivery

Enable SMTP so forgot-password, signup welcome, and admin emails actually reach inboxes. When disabled, the app uses .env / console backend (emails print to the server log in development).

{{ form.smtp_enabled }}
Turn on after filling host, port, and credentials below.
{{ form.smtp_host }} {% if form.smtp_host.errors %}
{{ form.smtp_host.errors.0 }}
{% endif %}
{{ form.smtp_port }}
587 (TLS) or 465 (SSL)
{% if form.smtp_port.errors %}
{{ form.smtp_port.errors.0 }}
{% endif %}
{{ form.smtp_use_tls }}
{{ form.smtp_use_ssl }}
{% if form.smtp_use_ssl.errors %}
{{ form.smtp_use_ssl.errors.0 }}
{% endif %}
{{ form.smtp_username }} {% if form.smtp_username.errors %}
{{ form.smtp_username.errors.0 }}
{% endif %}
{{ form.smtp_password }} {% if form.smtp_password.errors %}
{{ form.smtp_password.errors.0 }}
{% endif %}
{{ form.smtp_from_email }}
Example: TSN Digital Academy <noreply@yourdomain.com>
{% if form.smtp_from_email.errors %}
{{ form.smtp_from_email.errors.0 }}
{% endif %}
Back to dashboard
Send test email

Uses the saved SMTP settings (save the form above first if you just changed them).

{% csrf_token %}
{% endblock %} {% block extra_js %} {% endblock %}